package org.example.servlet_01.request;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set;

/**
 *  ServletRequest：
 *      * 何时创建和销毁：
 *          * 创建：当用户向服务器发送一个请求，服务器在对应的Servlet对象中创建一个request对象
 *          * 销毁：当服务器对这次请求作出了响应，服务器就会销毁这个request对象
 *      * 如何存取共享区数据：
 *          * 存：void setAttribute(String key,Object value)
 *          * 取：Object getAttribute(String key)
 *      *作用范围：
 *          * 一次请求，转发也是一次请求（重定向）

 *      请求转发：一种在服务器内部的资源跳转方式
 *          1.步骤：
 *              1.通过request对象获取请求转发器对象：RequestDispatcher getRequestDispatcher(String path)
 *              2.使用RequestDispatcher对象来进行转发：forward(HttpServletRequest request,ServletResponse response)
 */

@WebServlet("/RequestDemo5")
public class RequestDemo5 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        System.out.println("RequestDemo5被访问啦~~");
        //存储数据到转发共享域
        request.setAttribute("key","value");
        //转发请求到demo6资源
        request.getRequestDispatcher("/RequestDemo6").forward(request, response);
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {

    }
}
